using System;
using ProtoModels;

[Serializable]
public class GameplayAchievement : ReferencableObject
{
	public string name;

	public string description;

	public string androidId;

	public string iosId;

	public int index;

	protected GameplayAchievementDAO model;

	protected GGStoryAchivementsController achivementController;

	public string achivementId
	{
		get
		{
			return androidId;
		}
	}

	public virtual bool shouldShowAchievementStageCompleted
	{
		get
		{
			return false;
		}
	}

	public virtual int achievedStagesCount
	{
		get
		{
			return 0;
		}
	}

	public virtual int totalStages
	{
		get
		{
			return 0;
		}
	}

	public override ReferencableObject GetReference()
	{
		ReferencableObject referencableObject = new ReferencableObject();
		referencableObject.id = id;
		referencableObject.referenceName = name;
		return referencableObject;
	}

	public virtual string GetDescription()
	{
		return description;
	}

	public virtual void Init(GGStoryAchivementsController achivementController, GameplayAchievementDAO model, int index)
	{
		this.achivementController = achivementController;
		this.model = model;
		this.index = index;
	}

	public void Save()
	{
		achivementController.Save();
	}

	public virtual void OnShowAchievementStageCompleted(int achievementStage)
	{
	}

	public virtual void ApplyRewards()
	{
	}

	public virtual bool HasCompletedStage(int stageIndex)
	{
		return false;
	}

	public virtual string GetStageText(int stageIndex)
	{
		return string.Empty;
	}

	public virtual void UpdateAchievement(GGStoryAchivementsController.UpdateAchievementParams updateParams)
	{
	}
}
